<?php

//include_once '../comun/Properties.php';

if ( !defined( "RUTA_BASE_SISTEMA" ) )
  {
     include_once '../../../config/Constantes.php';
  }
  
/** 
 * Descripcion: Permite cargar los datos correspondientes a los valores que 
 *              se utilizaran para insertar en el area correspondiente al javascript 
 *              en las paginas
 *             
 * Autor   : Juan Jose Muñiz Juarez
 * Fecha   : 30 de Marzo de 2012
 * Version : 1.0
 * 
 */

class LibreriasJavascript
   {
      private $_jquery;
      private $_jquery_ui;
      private $_properties;  
      private $_datos_cargados;    
      private $_datos_devolver;
      
      
      /**
       * 
       * Metodo: __construct
       * Descripcion: 
       * Fecha de Creacion: 30/03/2012 16:22:08
       * Autor: Juan José Muñiz Juárez
       * params: @param unknown_type $file
       * params: @param unknown_type $cargar_fichero_properties
       * return: return_type
       */
      function __construct( $file = '', $cargar_fichero_properties = false )
         {
            if ( $cargar_fichero_properties || !empty( $file ) )
              {
                 if ( !empty ( $file ) )
                   {
                        $this -> _properties = new Properties( );
                        
                        $this -> _properties -> loadFileProperties( $file );
                   }
                 else
                   {
                      $this -> _datos_cargados = false;
                   }  
                   
                 if ( !$cargar_fichero_properties )
                   {
                      $this -> _datos_cargados = false;
                   }  
              }
         }
         
         /**
          * 
          * Metodo: set_Properties
          * Descripcion: Asigna el arreglo con todos los datos pares de clave => valor
          * Fecha de Creacion: 30/03/2012 16:21:34
          * Autor: Juan José Muñiz Juárez
          * params: @param unknown_type $properties
          * return: return_type
          */
       public function set_Properties( $properties )
         {
            if ( $properties )
              {
                 if ( is_array( $properties ) && count( $properties ) > 0 )
                   {
                      $asignar_valor = false;
                      
                      foreach( $properties  as $contenido )
                        {
                           if ( is_array( $contenido ) && count( $contenido ) > 0 )
                             {
                                $asignar_valor = true;
                                break;
                             }
                        }
                      
                      if ( $asignar_valor )
                        {
                           $this -> _properties = $properties;
                        }
                   }
              }
         }  
         
         /**
          * 
          * Metodo: get_Properties
          * Descripcion: Dependiendo del parametro que recibe se devuelve el contenido de todas
          *              las propiedades contenidas en el archivo que se carga o se devuelve
          *              el valor de las propiedades que previamente se envian a la clase
          * Fecha de Creacion: 30/03/2012 16:47:54
          * Autor: Juan José Muñiz Juárez
          * params: @param unknown_type $devolver_array_properties
          * params: @return Ambigous <Properties, unknown>|string
          * return: Ambigous <Properties, unknown>|string
          */
      public function get_Properties( $devolver_array_properties = false )
        {
           if ( $devolver_array_properties )
             {
                return $this -> getPropertiesArray();
             }
           else
             {
                return $this -> getPropertiesTexto();
             }  
        }  

        /**
         * 
         * Metodo: getPropertiesArray
         * Descripcion: Devuelve el array de las properties cargadas
         * Fecha de Creacion: 30/03/2012 16:47:57
         * Autor: Juan José Muñiz Juárez
         * params: @return Ambigous <unknown, Properties>
         * return: Ambigous <unknown, Properties>
         */
      private function getPropertiesArray()
        {
           return $this -> _properties;
        }  
        
        /**
         * 
         * Metodo: getPropertiesTexto
         * Descripcion: Devuelve los valores contenidos en la variable $this -> _datos_devolver
         *              que previamente envia el usuario y lo devuelve como texto
         * Fecha de Creacion: 30/03/2012 16:47:11
         * Autor: Juan José Muñiz Juárez
         * params: @return string
         * return: string
         */
      private function getPropertiesTexto()
        {
           $texto = "";
           
           if ( defined( "RUTA_BASE_SISTEMA" ) )
             {
                $ruta_base_sistema = RUTA_BASE_SISTEMA;
             }
           else
             {
                $ruta_base_sistema = "http://localhost/SITKD";
             }  
           
           $etiqueta_javascript_inicio = "<script language='javascript' type='text/javascript' src='$ruta_base_sistema/REPLACE_SRC'>";
           $etiqueta_javasscrit_fin = "</script>";
           
           if ( $this -> _datos_devolver )
             {
                if ( is_array( $this -> _datos_devolver ) && count( $this -> _datos_devolver ) > 0 )
                  {
                     foreach( $this -> _datos_devolver as $datos )
                       {
                          if ( $datos )
                            {
                               //var_dump( $datos );
                               $valor_propiedad = "";
                               // Se verifica que se ha pasado un arreglo con n valores que corresponden a n claves que se unirar
                               // para obtener el valor en conjunto de las n claves que se envien
                               if ( is_array( $datos ) && count( $datos ) > 0 )
                                 {
                                    foreach ( $datos as $propiedades )
                                      {
                                         $valor_propiedad.= trim( $this -> _properties -> getProperty( $propiedades ) );  
                                      }

                                     // echo $valor_propiedad;
                                 }
                               else
                                 {
                                    $valor_propiedad = trim( $this -> _properties -> getProperty( $datos ) );
                                   // echo "-".$valor_propiedad;
                                 }  
                                 
                               $texto .= PHP_EOL;
                               $texto .= str_replace( "REPLACE_SRC", trim ( $valor_propiedad ) , $etiqueta_javascript_inicio );
                               $texto .= $etiqueta_javasscrit_fin;
                            }  
                       }
                  }
                else
                  {
                     $texto .= PHP_EOL;
                     $texto .= str_replace( "REPLACE_SRC", trim ( $this -> _properties -> getProperty( $this -> _datos_devolver  ) ) , $etiqueta_javascript_inicio );
                     $texto .= $etiqueta_javasscrit_fin;
                  }  
             }
             
           return $texto;  
        }   

      public function setValoresObtener( $valores  )
        {
           $this -> _datos_devolver = $valores;
        }  
   }
   
 /*  if ( defined( "RUTA_FISICA_SISTEMA" ) )
   {
      $ruta_base_sitio = RUTA_FISICA_SISTEMA;
   }
   else
   {
      $ruta_base_sitio = "C:/wamp/www/SITKD";
   }
   
   $librerias = new LibreriasJavascript( "$ruta_base_sitio/sistema/config/properties/javascript.properties");
   $librerias -> setValoresObtener( array( "jquery_validate" ) );
   
   echo $librerias -> get_Properties( false );
   
   echo dirname( "../sistema/config/properties/javascript.properties" );*/
 